package org.huangrui.spark.scala.core.rdd.operate.transform

import org.apache.spark.{SparkConf, SparkContext}

/**
 * @Author hr
 * @Create 2024-10-17 16:41 
 */
object Spark10_Operate_Transform_WordCount {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local[*]").setAppName("spark")
    val sc = new SparkContext(conf)
    // TODO 分组聚合
    //      1. 读取文件
    val rdd = sc.textFile("data/word.txt")
    //      2. 将文件数据进行分解
    val wordOne = rdd.flatMap((_: String).split(" ")).map((_, 1))
    //      3. 将相同的单词分到一个组中
    val wordGroup = wordOne.groupBy(_._1)
    //      4. 计算每个单词的组中的数量即可
    wordGroup.mapValues(_.size).collect().foreach(println)
    sc.stop()
  }
}
